<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>扩展运算符和reset运算符</title>
</head>
<body>

<script>
  // 对象扩展运算符 ... 三个点
  {
    function mrgu(...arg){
      console.log(arg[0])
      console.log(arg[1])
      console.log(arg[2])
      console.log(arg[3])
      console.log(arg[4])
      console.log(arg[5])
    }
    mrgu(1,2,3,4);
  }
  {
    let arr1 = ['www','jspang','com'];
    let arr2 = arr1; // 这一块表示 没有新开辟新的内存空间，arr2只是映射了arr1的内存空间
    console.log("unoparetion--",arr2);
    arr2.push('MrGu');
    console.log('oparetion',arr2,arr1); // 这一块arr1好arr2的内容是相同的
  }

  {
    let arr1 = ['www','jspang','com'];
    let arr2 = [...arr1]; // ...arr1 表示的不是arr1对象，而是arr1内的元素
    console.log("unoparetion--",arr2);
    arr2.push('MrGu');
    console.log('oparetion',arr2,arr1); // 这一块arr1好arr2的内容是相同的
  }
  {
    // rest(剩余部分)   ... 主要用于 声明方法，参数  不确定性
    function  mrgu(first,...arg) {
      // console.log(arg.length);
      /*
      * 这种方法 在内存中开辟了 i 的内存，会影响效率
      * for( let i=0; i<arg.length; i++ ){
        console.log(arg[i]);
      }*/
      for( let val of arg ){
        console.log(val)
      }
    }
    mrgu(0,1,2,3,4,5,6,7);
  }
</script>

</body>
</html>